package decorator_pattern.ex1;

/**
 * @author 申书航
 * @version 1.0
 *
 * Troll 接口定义了一个怪物的基本行为，包含攻击、防御和血量等属性的方法。
 */
public interface Troll {

    /**
     * 攻击目标 Troll，返回攻击造成的伤害值。
     *
     * @param target 目标 Troll
     * @return 造成的伤害值
     */
    int attack(Troll target);

    /**
     * 对 Troll 造成的伤害值进行处理。
     *
     * @param hitVal 造成的伤害值
     */
    void hit(int hitVal);

    /**
     * 获取攻击力。
     *
     * @return 攻击力
     */
    int getAttackPower();

    /**
     * 设置攻击力。
     *
     * @param ap 攻击力
     */
    void setAttackPower(int ap);

    /**
     * 获取防御力。
     *
     * @return 防御力
     */
    int getDefensePower();

    /**
     * 设置防御力。
     *
     * @param dp 防御力
     */
    void setDefensePower(int dp);

    /**
     * 获取血量。
     *
     * @return 当前血量
     */
    int getHp();
}